package com.hope.hotel.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hope.hotel.common.Result;
import com.hope.hotel.entity.DAO.HotelNewDAO;
import com.hope.hotel.entity.dto.AmenitiesDTO;
import com.hope.hotel.entity.dto.LocationDTO;
import com.hope.hotel.entity.dto.PolicyDTO;
import com.hope.hotel.entity.po.Hotel;

/**
 * @作者 TD
 * @日期 2025/5/18
 */
public interface HotelService extends IService<Hotel> {

    Result getAdminHotelInfo(String adminId);

    Result createHotel(HotelNewDAO hotelNewDAO, String adminId);

    Result updateHotel(HotelNewDAO hotel, String adminId);

    Result getHotelList(int page, int pageSize);

    Result getHotelLocation(String hotelId);

    Result createHotelLocation(LocationDTO locationDTO, String adminId);

    Result updateHotelLocation(LocationDTO locationDTO, String adminId);

    Result getHotelPolicy(String hotelId);

    Result createHotelPolicy(PolicyDTO policyDTO, String adminId);

    Result updateHotelPolicy(PolicyDTO policyDTO, String adminId);

    Result getHotelAmenities(String hotelId);

    Result createHotelAmenities(AmenitiesDTO amenitiesDTO, String adminId);

    Result updateHotelAmenities(AmenitiesDTO amenitiesDTO, String adminId);

    Result getHotelDetail(String hotelId);
    
    /**
     * 搜索酒店
     * @param destination 目的地(城市或酒店名称)
     * @param checkIn 入住日期
     * @param checkOut 离店日期
     * @param guests 入住人数
     * @param page 页码
     * @param pageSize 每页大小
     * @return 搜索结果
     */
    Result searchHotels(String destination, String checkIn, String checkOut, Integer guests, int page, int pageSize);
}
